package my.xh.excel.annotation;

import my.xh.excel.core.ValueConverter;
import my.xh.excel.enums.CountTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Auther: xh
 * @Date: 2019/7/27 16:49
 * @Description:
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface CellConf {

    /**
     * @Description: 字体
     * @auther: xh
     * @date: 2019/7/27 17:41
     */
    CellFont font() default @CellFont();

    /**
     * @Description: 在MAIN_TITLE时，意义为标题名，在其它字段为副标题栏列名
     * @auther: xh
     * @date: 2019/7/28 7:00
     */
    String value() default "";

    /**
     * @Description:  行号或列号。 MAIN_TITLE时为行号 其它字段为列号
     * @auther: xh
     * @date: 2019/7/28 7:00
     */
    int index() default 0;

    /**
     * @return java.lang.String
     * @Author xh
     * @Description 对齐方式，默认左对齐  参考 org.apache.poi.ss.usermodel.HorizontalAlignment
     * @Date 10:47 2019/7/31
     * @Param []
     **/
    String alignment() default "LEFT";

    /**
     * @return short
     * @Author xh
     * @Description 背景填充颜色 ,默认白色 参考：org.apache.poi.ss.usermodel.IndexedColors
     * @Date 10:49 2019/7/31
     * @Param []
     **/
    short fillForegroundColor() default 9;

    /**
     * @return int
     * @Author xh
     * @Description 列宽
     * @Date 10:51 2019/7/31
     * @Param []
     **/
    int columnWidth() default 0;
    /**
     * @Author xh
     * @Description 自动换行
     * @Date 10:52 2019/7/31
     * @Param []
     * @return boolean
     **/
    boolean wrapText() default false;
    /**
     * @Author xh
     * @Description 保留小数位数  当值为数值型时，此项方有意义
     * @Date 10:52 2019/7/31
     * @Param []
     * @return boolean
     **/
    int keepDecimalDigits() default 0;
    /**
     * @Author xh
     * @Description 值转换 的定义
     * @Date 10:52 2019/7/31
     * @Param []
     * @return boolean
     **/
    Class<? extends ValueConverter>[] valueConverterClasses() default {} ;

    /**
     * @Author xh
     * @Description 统计类型定义
     * @Date 10:52 2019/7/31
     * @Param []
     * @return boolean
     **/
    CountTypeEnum[] countTypes() default {};

    /**
     * @Author xh
     * @Description 日期格式
     * @Date 10:52 2019/7/31
     * @Param []
     * @return boolean
     **/
    String dateFormat() default "yyyy-MM-dd HH:mm:ss";

}
